package com.ruoyi.performance.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.performance.domain.PerfLevelTemplate;
import com.ruoyi.performance.domain.PerfTemplate;
import com.ruoyi.performance.dto.PerfTemplateDto;
import com.ruoyi.performance.service.PerfTemplateService;
import com.ruoyi.performance.utils.MyUtils;

import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

/**
 * @author YL
 * @date 2020-07-22
 * @description 绩效模板控制层
 */
@RestController
@RequestMapping("template")
public class PerfTemplateController extends MyUtils {
	
	@Resource
	private PerfTemplateService perfTemplateService;

	/**
     * 根据id查找绩效模板
     * @param id 绩效模板id
     * @return 绩效模板明细
     */
	@GetMapping("get/{id}")
	public R list(@PathVariable("id") int id){
		return jacResult(perfTemplateService.selectPerfTemplateById(id));
	}

	/**
	 * 根据公司代码查询绩效模板
	 */
	@GetMapping("getbycode")
	public R getbycode(String companyCode) {
		startPage();
		return result(perfTemplateService.selectPerfTemplateByCompanyCode(companyCode));
	}

	/**
	 * 查询绩效模板明细列表
	 */
	@GetMapping("list")
	public R list(PerfTemplateDto perfTemplateDto) {
		startPage();
        return result(perfTemplateService.selectPerfTemplateList(perfTemplateDto));
	}
	
	
	/**
	 * 新增保存绩效模板明细
	 */
	@PostMapping("save")
	public Map<String,Object> addSave(@RequestBody PerfTemplate perfTemplate)
	{		
        Map<String,Object> r = new HashMap<String,Object>();
        Map<String,Integer> id = new HashMap<String,Integer>();
    	int result = perfTemplateService.insertPerfTemplate(perfTemplate);
    	if (result > 0) 
    	{   
    		id.put("id", result);
        	r.put("code", 0);
    		r.put("msg", "success");
    		r.put("rows", id);
    		return r;
    	}
    	else
    	{
        	r.put("code", 500);
    		r.put("msg", "新增模板失败，请联系管理员！");
    		return r;
    	}  
	}

	/**
	 * 修改保存绩效模板明细
	 */
	@PostMapping("update")
	public R editSave(@RequestBody PerfTemplate perfTemplate)
	{		
		return toAjax(perfTemplateService.updatePerfTemplate(perfTemplate));
	}
	
	/**
	 * 修改保存绩效模板明细
	 */
	@PostMapping("updateStatus")
	public Map<String,String> updateStatus(@RequestBody Map<String, List<PerfTemplate>> datas)
	{		
		return jacResultMsg(perfTemplateService.updateTempStatus(datas));
	}
	
	/**
	 * 删除绩效模板
	 */
	@PostMapping("remove")
	public Map<String,String> remove(String ids)
	{		
		return jacResultMsg(perfTemplateService.deletePerfTemplateById(ids));
	}
	
}
